/*
 * @Author jiangzhiwei
 * @Date 2023-07-28 11:11:53
 * @LastEditors jiangzhiwei
 * @LastEditTime 2023-07-28 18:11:02
 * @FilePath \test-cron\src\components\yc-cron\utils\constant.js
 * @Description 常量
 */
import { isVue2 } from 'vue-demi'

// cron表达式类型
export const LINUX_TYPE = 'linux'
export const SPRING_TYPE = 'spring'
export const QUARTS_TYPE = 'quarts'

// 组件属性与emit
/** v-model对应的组件属性名称 */
export const VALUE_NAME = isVue2 ? 'value' : 'modelValue'
/** v-model对应的emit的名称 */
export const VALUE_EMIT_NAME = isVue2 ? 'input' : 'update:modelValue'
/** cron表达式变化后emit的名称 */
export const EXPRESSION_EMIT_NAME = 'expressionChange'
/** 日对应的cron表达式变化后emit的名称 */
export const DAY_EXPRESSION_EMIT_NAME = 'dayExpressionChange'
/** 周对应的cron表达式变化后emit的名称 */
export const WEEK_EXPRESSION_EMIT_NAME = 'weekExpressionChange'
/** 解析表达式报错的名称 */
export const PARSE_ERROR_EMIT_NAME = 'parseError'
/** 激活标签发生变化后emit的名称 */
export const TAB_EMIT_NAME = 'tagChange'

/** 对应选项cron表达式缺失标志 */
export const LACK_FLAG = '_'

/** linux与spring类型的周的值与名称的映射 */
export const SPRING_WEEK_MAP = {
  0: '日',
  1: '一',
  2: '二',
  3: '三',
  4: '四',
  5: '五',
  6: '六',
  7: '日'
}

/** quarts类型的周的值与名称的映射 */
export const QUARTS_WEEK_MAP = {
  1: '日',
  2: '一',
  3: '二',
  4: '三',
  5: '四',
  6: '五',
  7: '六'
}

// 错误信息
export const ERROR = {
  LENGTH_ERROR: '长度错误',
  FORMATTER_ERROR: '格式错误',
  BOTH_NOT_DESIGNATED_ERROR: '日与周不能同时不指定(?)'
}